<?php
namespace yunj\control\cols\templet;

use yunj\control\cols\YunjCols;

class Action extends YunjCols {

    // 操作栏操作项必要配置
    private $actionRequireArgs=[
        'title'=>'',                // 标题
        'event'=>'',                // 触发事件名（主要用于type=async_event的异步请求）
        'type' => '',               // 触发事件类型（open_tab 打开子页面、open_popup 打开弹出层页面、async_event 异步事件）
        'icon' => '',               // 显示图标（可选，图标的class）
        'class'=>'',                // 额外class（可选）
        'url'=>'',                  // 触发事件执行的url
        'confirm_text'=>'',         // 确认弹窗提示（可选）
        'dropdown'=>false,          // 是否下拉操作
    ];

    private static $instance;

    public static function instance(){
        if (!self::$instance instanceof self){
            self::$instance = new self();
        }
        return self::$instance;
    }

    protected function defineExtraArgs(){
        return [
            'title'=>'操作',
            'align'=>'center',
            'fixed'=>'right',
            'options'=>[],
        ];
    }

    protected function handleArgs($args){
        $options=$args['options'];
        if(!$options) return $args;
        $args['options']=[];
        foreach ($options as $k=>$v){
            $option=array_supp($v,$this->actionRequireArgs);
            $option['event']=$option['event']?:$k;
            $args['options'][]=$option;
        }
        return $args;
    }

}